This invention provides bit error detection and correction for a Dynamic Bit Allocation Sub Band Coder (DBASBC). DBASBCs are typically used for coding and digital transmission of speech signals. In a mobile radio environment, a digitally transmitted bit stream is subject to a variety of impairments. For example, fading pattern errors are induced by the vehicle's movement through direct and reflected wave patterns. Similarly, random pattern errors result from an overall weak received signal level.
Fading errors are manifested as quasi-periodic bursts of dense bit errors (10-50% of the received bits in error), and random errors are manifested as static occurrences of occasional errors (0-10% of the received bits in error). The invention disclosed here details a method for correcting random errors, and detecting and mitigating the effect of fading errors.
Sub-band coders operate by breaking the incoming digital signal up into separate frequency bands. These bands are usually identical in bandwidth, such as for a dynamic bit allocation coder, but may be of different widths. Splitting the input signal into bands is usually accomplished by digital filters, either arranged in parallel (1 filter per band) or in a tree structure (a cascaded binary tree of half-band split filters). The outputs of these filters are digitally decimated to reduce their effective sampling rate to the required Nyquist bandwidth before transmission, e.g., two times the filter bandwidth. The decimated sub-band signals are individually coded into bits for transmission. This coding usually takes the form of a scalar (1 dimensional) quantizer.
Sub-band coders achieve positive coding gains by allocating the quantization bits to the individual bands according to the energy level of the signal in that band. Coding gain is the gain in signal-to-noise ratio of a coding algorithm over the signal-to-noise ratio of a scalar quantizer operating at the same transmission (bit) rate. Since the spectrum of speech signals varies significantly over time, the allocation of quantization bits needs to be periodically updated. The combination of variable bit allocation with a sub-band coder is DBASBC. The period of time during which the bit allocation is valid is a frame. Encoding the sub-band coder parameters is performed on a frame-by-frame basis.
The energy level of each sub-band is also used in computing the correct scaling for the individual band quantizers' step sizes. Because two required pieces of information (the bit allocation and quantizer scaling) are contained in the energy levels, energy levels are transmitted to the receiver as side information. Both the receiver and transmitter use identical algorithms to extract the bit allocation information and quantizer scaling from these energy levels.
The bits used to code the sub-band energies are sensitive to error. A single, well-placed bit error in an energy level can cause the bit allocation algorithm in the receiver to mistrack. The result is an incorrect decoding of all the sub-band samples in the frame. Accordingly, energy bits are usually heavily protected to guard against such errors.
In a mobile radio environment, a digitally transmitted bit stream is subject to a variety of impairments. Specifically, these impairments can be divided into two major groups: fading pattern errors, induced by the vehicle's movement through direct and reflected wave patterns, and random pattern errors, which occur as a result of an overall weak received signal level. Fading errors are manifested as quasi-periodic bursts of dense bit errors (10-50% of the received bits in error), while random errors manifested as static occurrences of occasional errors (0-10% of the received bits in error) .
Previous protection methods for digital transmissions treat the entire set of energy values as a single entity. For example, U.S. Pat. No. 4,831,624 does not show any error correction technique, but discloses a single cyclic redundancy code (CRC) checksum to detect differences in the bit allocation from transmitter to receiver. If the CRC detects a mismatch, the entire set of energy values from the previous frame is used in place of the values producing the erroneous bit allocation. While this algorithm works adequately for fading errors and produces a minimal level of overhead for protection, it has a serious failing when subjected to random pattern errors.
Using the method disclosed in U.S. Pat. No. 4,831,624, a single error in the significant energy bits causes the single CRC check to indicate a failure. Because of this, the probability that a frame will need to be replaced is many times greater than the probability of any one bit in the frame being in error. For example, if there are 20 bits that are sensitive, and the probability of a single bit error is 0.05 (i.e., 5% random pattern BER), then the probability of replacing the entire set of energies is about 0.64 or 64%. This will produce unintelligible garble at the SBC output, since only 36% of the receiver bit allocations will be correct. Accordingly, a more powerful algorithm is required to handle both random and fading pattern errors.
A novel strategy of protection of the DBASBC-encoded speech from bit errors is the object of this invention. The bits corresponding to the sub-band energy levels are the most perceptually significant bits, and thus are the only bits protected. Unlike the scheme disclosed in U.S. Pat. No. 4,831,624, the bits corresponding to each energy value are protected individually, with a separate error detection/correction decision for each energy. Thus, a single bit error will not cause replacement of the entire set of energies. This strategy is effective in both fading and random pattern bit errors.
In the preferred embodiment of the invention, the eight (8) sub-band energies are encoded with scalar non-uniform quantizers. Bands 1 through 6 are quantized with four (4) bits each, and bands 7 and 8 are quantized with three (3) bits each. The bands are numbered starting with the lowest frequency band (1) to the highest frequency band (8). The bits for each energy correspond to the index of the non-uniform quantizer's output level table. The indices are encoded with natural binary code and ordered with the increasing values of the output level table. The binary value "111" corresponds to the maximum quantizer output value of a 3 bit quantizer. The value "000" corresponds to the minimum level.
The bits for each energy level can be classified according to their position within the binary word. An error in the most significant bit (MSB) has a much larger effect on the output speech than an error in the least significant bit (LSB).
Energy information is protected by correcting correctable errors in the protected bits using a correction algorithm. When this correction algorithm fails, the failure is detected and an estimate is generated of the decoded energy. This estimate is a weighted-sum average of the values of the corresponding energy from the previous frame and the adjacent energies in the current frame. This detection and generation operation is synthetic regeneration.
Correction of errors is conducted at the bit level. Synthetic regeneration is at the decoded value level. Prior techniques did not correct at the bit level and regenerate at the energy level. For example, the schemes disclosed in U.S. Pat. Nos. 4,802,171 and 4,831,624 are applied at the bit level only and thereby limit the utility of the regeneration operation.
The two transmission protection strategies disclosed here can be understood as remedies for the two types of channel impairment present in mobile radio. Error correction of bits is most useful for improving DBASBC performance in random pattern errors. Error detection and synthetic regeneration is most useful in fading pattern errors.
Error correction of bits is generally not useful for fading pattern errors because error correction schemes break down when the bit error rate (BER) increases beyond a certain point. This break down point almost always occurs sometime during fading pattern errors. However, error detection schemes can be made robust enough to detect almost any error pattern including fading pattern errors. While correction and detection/regeneration schemes are both useful against either type of error pattern, correction plays a major role in the low BERs and detection/regeneration takes over in high BERs.
One of the novel features of the present technique is that the bit sequence representing each energy value is individually protected. If a single bit error occurs in the MSBs of the energy level, an error detection mechanism is activated for that single energy value. The individual energy value is corrected instead of replacing the entire set of energy values in the frame.
One advantage of the present technique is that there are fewer protected bits grouped together for the purpose of error detection as compared to grouping all bits representing all the energy values (typically 2 or 3 bits, instead of 20). This dramatically reduces the probability of replacing or regenerating the energy values. Another advantage is that if a single energy value is found uncorrectable, it is the only one replaced. The remaining energy values are left unperturbed. By combining the strategy for energy value protection with the error correcting algorithm, excellent performance against random and fading error patterns has been achieved.